{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "af137f7c-48c9-4186-8da0-e93bc7c97492",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 686.7610473632812\n",
      "20 157.71331787109375\n",
      "40 193.37001037597656\n",
      "60 159.5253448486328\n",
      "80 137.357177734375\n",
      "100 107.65776062011719\n",
      "120 90.04142761230469\n",
      "140 73.80252838134766\n",
      "160 60.0347900390625\n",
      "180 55.3876953125\n",
      "200 51.321495056152344\n",
      "220 45.42118453979492\n",
      "240 37.329158782958984\n",
      "260 39.813899993896484\n",
      "280 36.921173095703125\n",
      "300 35.729698181152344\n",
      "320 34.031185150146484\n",
      "340 34.07953643798828\n",
      "360 31.345613479614258\n",
      "380 28.579078674316406\n",
      "400 31.169036865234375\n",
      "420 29.1927490234375\n",
      "440 29.442237854003906\n",
      "460 28.791065216064453\n",
      "480 26.066898345947266\n"
     ]
    }
   ],
   "source": [
    "#使用API来处理，不用手写梯度下降和参数\n",
    "# N is batch size; D_in is input dimension;\n",
    "# H is hidden dimension; D_out is output dimension.\n",
    "\n",
    "import torch.nn as nn\n",
    "import torch\n",
    "N, D_in, H, D_out = 64, 1000, 100, 10\n",
    "# Create random input and output data\n",
    "x = torch.randn(N, D_in)   # x = np.random.randn(N, D_in)\n",
    "y = torch.randn(N, D_out)\n",
    "\n",
    "class TwoLayerNet(torch.nn.Module):\n",
    "    def __init__(self, D_in, H, D_out):\n",
    "        super(TwoLayerNet, self).__init__()\n",
    "        self.linear1 = torch.nn.Linear(D_in,H,bias = False)\n",
    "        self.linear2 = torch.nn.Linear(H,D_out,bias = False) \n",
    "    \n",
    "    def forward(self, x):\n",
    "        y_pred = self.linear2(self.linear1(x).clamp(min=0))\n",
    "        return y_pred\n",
    "        \n",
    "model =  TwoLayerNet(D_in, H, D_out)\n",
    "loss_fn = nn.MSELoss(reduction=\"sum\")\n",
    "learning_rate = 1e-4\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr = learning_rate)\n",
    "\n",
    "for t in range(500):\n",
    "  # Forward pass: compute predicted y\n",
    "    y_pred = model(x)   #这里就是调用  model.forward(x)\n",
    "  # Compute and print loss; loss is a scalar, and is stored in a PyTorch Tensor\n",
    "  # of shape (); we can get its value as a Python number with loss.item().\n",
    "    loss = loss_fn(y_pred, y)\n",
    "    if t % 20 ==0:\n",
    "        print(t, loss.item())\n",
    "    optimizer.zero_grad\n",
    "  # Backprop to compute gradients of w1 and w2 with respect to loss\n",
    "    loss.backward()\n",
    "    optimizer.step()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "901b4261-21db-405d-baf7-36c12b27555e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "e03f8016-9a16-47f6-92c4-e48aaee0a399",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|                                                                                         | 0/2000 [00:00<?, ?it/s]C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_15828\\1776592632.py:36: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = torch.nn.functional.softmax(x_layer)\n",
      "100%|█████████████████████████████████████████████████████████████████████████████| 2000/2000 [00:02<00:00, 917.47it/s]\n"
     ]
    }
   ],
   "source": [
    "#1、导入包和定义参数\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import trange\n",
    "EPOCHES = 2000\n",
    "USE_CUDA = torch.cuda.is_available()\n",
    "#USE_CUDA = False\n",
    "\n",
    "#2、定义数据，这里是自己建立\n",
    "torch.manual_seed(1)\n",
    "n_data = torch.ones(100, 2)     #内容为一个 100 行 2 列 的 tensor\n",
    "x0 = torch.normal(3*n_data, 1)  \n",
    "y0 = torch.zeros(100)  \n",
    "x1 = torch.normal(-2*n_data, 1)  \n",
    "y1 = torch.ones(100)\n",
    "x2 = torch.normal(10*n_data, 1)\n",
    "y2 = torch.ones(100)*2\n",
    "x = torch.cat((x0, x1, x2)).type(torch.FloatTensor)  \n",
    "y = torch.cat((y0, y1, y2)).type(torch.LongTensor) \n",
    "if USE_CUDA:\n",
    "    x = x.cuda()\n",
    "    y = y.cuda()\n",
    "    \n",
    "    \n",
    "#3、定义网络和模型\n",
    "#3层MLP\n",
    "class Net(torch.nn.Module):  \n",
    "    def __init__(self, n_feature, n_hidden, n_output):  \n",
    "        super(Net, self).__init__()  \n",
    "        self.n_hidden = torch.nn.Linear(n_feature, n_hidden)  \n",
    "        self.out = torch.nn.Linear(n_hidden, n_output)  \n",
    "    def forward(self, x_layer):  \n",
    "        x_layer = torch.relu(self.n_hidden(x_layer))  \n",
    "        x_layer = self.out(x_layer) \n",
    "        x_layer = torch.nn.functional.softmax(x_layer)  \n",
    "        return x_layer  \n",
    "\n",
    "model = Net(n_feature=2, n_hidden=20, n_output=3)  \n",
    "if USE_CUDA:\n",
    "    model = model.cuda()\n",
    "# print(net)  \n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.02)  \n",
    "loss_func = torch.nn.CrossEntropyLoss() \n",
    "\n",
    "# 4、 完成训练和迭代\n",
    "losses = []\n",
    "for i in trange(EPOCHES):  \n",
    "    out = model(x)  \n",
    "    # print(out.shape, y.shape)  \n",
    "    loss = loss_func(out, y) \n",
    "    losses.append(loss.cpu().detach().numpy())\n",
    "    optimizer.zero_grad()  \n",
    "    loss.backward()  \n",
    "    optimizer.step() \n",
    "    \n",
    "    \n",
    "#5、其它--保存模型 \n",
    "torch.save(model.state_dict,f\"./weights/model_calssification_{EPOCHES}.th\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "81f141b6-5f0e-489c-8def-0b4c1993fac5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_15828\\1776592632.py:36: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = torch.nn.functional.softmax(x_layer)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#6、其它--打印损失\n",
    "x1 = range(0,len(losses))\n",
    "plt.plot(x1,losses,\".-\")\n",
    "plt.xlabel(\"epoches\")\n",
    "plt.ylabel(\"test loss\")\n",
    "plt.show()\n",
    "\n",
    "#7、其它--结果打印 \n",
    "train_result = model(x)    \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "74b93ebe-cba4-47e4-b6eb-a5348ae93614",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "53040e44-a5d4-4c73-94c7-e5bc48fe01d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "632de771-77ff-4a3b-a8a2-d9362f4bb45d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "89bc8bc3-8fc4-4a99-850e-4697f05ced42",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ff6d2e2-3cb5-4d18-b918-1f0b5039baf6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eddc330c-ac66-4c23-8571-8cf7eee0e359",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ac72842-f1e7-49cf-a059-06cbb517e5d0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e6ee91a9-d1f6-4976-bbf6-daed9cfccfb0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "27cef2d9-1b8d-4a92-80aa-b01e311b8593",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f4234000-9e75-4e04-a7c4-9403541bac80",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2c1484ee-d033-4915-8d8e-7b40696ae1cf",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a76817a7-fd43-4862-a969-9e5958aeaacc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
